BigQueryのデータプロファイルとデータ品質を使ってみる
はじめに
データアナリティクス事業本部のkobayashiです。
BigQueryのテーブル上にあるデータを統計情報を視覚的に確認できる「データプロファイル」とそのプロファイル情報を使用してデータ品質をチェックできる「データ品質」を試してみたのでまとめます。
- Generate data profile insights with scans | BigQuery | Google Cloud
- Monitor data quality with scans | BigQuery | Google Cloud
データプロファイリング・データ品質とは
データプロファイルはCloud Dataplexの機能でBigQueryのテーブル上のデータの統計情報を作成することでテーブル列の一般的な統計的特性を取得しデータの内容を理解するために使います。主な情報としては列ごとの平均値・最大値・最小値といった統計情報、Null値の割合、重複値の割合、データ分布などが確認できるようになります。
データ品質とはデータプロファイリングで作成された情報を使ってデータ品質を定義するルールを決めてそのルールを満たすかどうかをチェックすることができます。
詳しくは以下をご確認ください。
データプロファイリング・データ品質を使ってみる
では早速BigQueryのデータプロファイリング・データ品質を使ってみたいと思います。
データプロファイルの機能はCloud DataplexのサービスをなのではじめにDataplexのAPIを有効にする必要がありますので APIとサービス > ライブラリ
でCloud Dataplex API
を検索して有効にします。
データプロファイルを使ってみる
対象データは以下のような天候データを扱います。データ件数は3600件ほどになります。
SELECT * FROM {project_id}.data_set_test.jp_weather;
date | month | city | w_type | temperature | precipitation | sunlight | cloudage |
---|---|---|---|---|---|---|---|
2021-11-13 | 11 | 京都 | 晴 | 10.500000000 | 0.000000000 | 7.600000000 | null |
2021-03-03 | 3 | 京都 | 晴 | 5.900000000 | 0.000000000 | 6.600000000 | null |
2021-11-14 | 11 | 京都 | 晴 | 12.100000000 | 0.000000000 | 3.600000000 | null |
2021-03-04 | 3 | 京都 | 晴 | 10.000000000 | 0.000000000 | 6.100000000 | null |
2021-11-15 | 11 | 京都 | 晴 | 12.800000000 | 0.000000000 | 7.900000000 | null |
2021-11-16 | 11 | 京都 | 晴 | 13.500000000 | 0.000000000 | 7.600000000 | null |
2021-11-17 | 11 | 京都 | 晴 | 12.800000000 | 0.000000000 | 8.000000000 | null |
2021-03-07 | 3 | 京都 | 晴 | 8.200000000 | 0.000000000 | 6.100000000 | null |
Cloud コンソールからBigQueryへ進みテーブルを選択し、データプロファイル
のタブを選択します。最初は何もデータがないのでデータプロファイルのスキャン
から新しいスキャンを作成
を選択します。
「DataPlex データプロファイル スキャンの作成」が開くので必要項目を入力します。
- 手順1)表示名に適切な名前を入れます。
- 手順2)範囲は「データ全体」か「インクリメンタル」が選べます。今回はオンデマンドで1回のみスキャンを行うので「データ全体」を選択します。スケジュール実行で定期的にスキャンをしテーブル内にインクリメントなDateかTimestamp列がある場合は「インクリメンタル」を選択したほうが良さそうです。
- 手順3)フィルタリングは今回は特に設定しません。
- 手順4)サンプリングサイズは今回扱うデータが3600件ほどなので「すべてのデータ」を選択します。
- 手順5)「公開」はBigQueryの画面にて結果を確認したいのでチェックを入れます。
- 手順6)「スケジュール」は「繰り返し」と「オンデマンド」が選べます。今回は「オンデマンド」を選択します。手順2の範囲設定の説明と重複しますが、データが定期的に追加され、テーブル内にインクリメントなDateかTimestamp列がある場合は「スケジュール」を選択したほうが良さそうです。
すべての設定を行ったあとに「スキャンを実行」を押下するとデータプロファイリングが始まります。今回のデータ件数の場合5分ほどでスキャンが終わりました。
データプロファイル
のタブに先程は何も表示されていませんでしたがスキャンが終わると以下のような統計情報が表示されます。
列ごとの平均値・最大値・最小値といった統計情報、Null値の割合、重複値の割合、データ分布の確認が行なえどのようなデータなのかが非常にわかりやすくなっています。
データ品質を使ってみる
データプロファイルが作成されたので次にデータ品質を使ってみます。
Cloud コンソールからBigQueryへ進みテーブルを選択し、データ品質
のタブを選択します。最初は何もデータがないのでデータ品質のスキャン
から新しいスキャンを作成
を選択します。
「DataPlex データ品質 スキャン」の作成が開くので必要項目を入力します。
- 手順1)表示名に適切な名前を入れます。
- 手順2)スキャンするテーブルはデータプロファイルが作成されていないと「このテーブルにはプロファイル データがありません。自動化ルールの推奨事項にはプロファイル データが必要です」と表示されるので事前にデータプロファイリングが必要になります。
- 手順3)フィルタリングは今回は特に設定しません。 手順4)サンプリングサイズはプロファイル同様に今回扱うデータが3600件ほどなので「すべてのデータ」を選択します。
- 手順5)「公開」はBigQueryの画面にて結果を確認したいのでチェックを入れます。
- 手順6)「スケジュール」は「繰り返し」と「オンデマンド」が選べます。今回はプロファイルのスキャンで「オンデマンド」を選択したのでデータ品質のスキャンでも「オンデマンド」を選択します。
すべての設定を行ったあとに「スキャンを実行」を押下するとデータ品質が作成され、スキャンしたデータに基づいて自動的にルールが作成されています。この自動的に作成されるルールは「Dataplex データプロファイリング ルールの推奨事項」で作成されています。
データ品質ルールは「Dataplex データプロファイリング ルールの推奨事項」以外にも「事前定義ルール」「カスタム SQL ルール」を作成することが可能です。
自動データ品質の概要 | Dataplex | Google Cloud
まとめ
BigQueryのテーブル上にあるデータを統計情報を視覚的に確認できる「データプロファイル」とそのプロファイル情報を使用してデータ品質をチェックできる「データ品質」を試してみました。どちらの機能も「完全性」「正確性」「一貫性」「固有性」といったデータ品質管理を行うにはとても役に立つ情報を確認・担保できる機能だと思いますので是非使ってみてください。
最後まで読んで頂いてありがとうございました。